#pragma once
#include "../Input/DirectInput.h"
#include <d3dx9.h>
#include <d3d9.h>

//---------------------------------------------------------
#ifndef CAMERA_H
#define CAMERA_H
//---------------------------------------------------------
namespace leo
{
class LEO_API Camera
{
	D3DXVECTOR3 eyePos;
	D3DXVECTOR3 lookVec;
	D3DXVECTOR3 upVec;
	D3DXVECTOR3 riVec;


public:
	void Update(DirectInput* _input);
	Camera(void);
	~Camera(void);

	
	// Rotaciones
	void Pitch(float _angle);
	void Yaw(float _angle);
	void Roll(float _angle);
	// Traslaciones
	void Walk(float _value);
	void Fly(float _value);
	void Strafe(float _value);

	void SetEyePos(const float x,const float y,const float z);
	void SetLook(const float x,const float y,const float z);
	void SetUpVector(const float x,const float y,const float z);

	void SetRightVector(const float x,const float y,const float z);
	const D3DXVECTOR3& GetEyePos(void) const;
	const D3DXVECTOR3& GetLook(void) const;
	const D3DXVECTOR3& GetUpVector(void) const;
	const D3DXVECTOR3& GetRightVector(void) const;
};

#include "Camera.inl"

}//end namespace
#endif